Field Selector

개요

kubectl를 사용할 때 사용되는 셀렉팅 방식.[1]
쿠버네티스 오브젝트를 조회할 때 조금 더 조건을 걸어 조회하는 방식을 제공해준다.

kubectl get pods --field-selector status.phase=Running

예를 들자면 이런 식으로, 현재 돌아가고 있는 파드만 조회하는 것이 가능하다.

각 리소스들이 서로를 찾기 위해 사용하는 라벨 셀렉터와는 다른 것이니 참고.

지원되는 필드

일단 모든 리소스들이 metadata.name, metadata.namespace는 가진다.
그러나 나머지는 리소스 별로 다르며, 없는 리소스를 조회하려고 하면 에러가 난다.

각 리소스별로 지원되는 필드는 위와 같다.

커스텀 리소스는?

커스텀 리소스도 위의 기본 필드는 제공된다.
여기에 만들 당시에 직접 몇 가지 필드를 제공하도록 설정할 수 있다.

지원 연산자

필드는 라벨처럼 집합 관련 연산자를 지원하지 않는다.
즉 필드는 이거나, 아니거나, 없거나 딱 이거밖에 없다는 것이다.

=, ==
!=

그래서 사용되는 것은 딱 이것들 밖에 없다.

그밖에

엄청난 것들은 그다지 없다.
그냥 사용방법에 대한 것들 조금 있는데..

일단 쉼표를 통해 여러 필드 셀렉터를 한꺼번에 지정할 수 있다.
and의 의미를 가진다.

여러 개의 리소스 타입을 한꺼번에 조회할 때도 사용할 수 있다.

참고


  1. https://kubernetes.io/docs/concepts/overview/working-with-objects/field-selectors/ ↩︎